/**
 * CKY Agent Platform 主应用组件
 * 
 * 功能特性：
 * - 应用路由配置和页面管理
 * - 主布局容器和内容区域
 * - 统一的内容区域样式
 * - 路由重定向和导航
 * 
 * @author CKY Agent Platform Team
 * @version 1.0.0
 * @lastModified 2024-01-15
 */

// React核心库导入
import React from 'react';
// React Router路由组件导入
import { Routes, Route, Navigate } from 'react-router-dom';
// Ant Design布局组件导入
import { Layout } from 'antd';

// 状态管理Provider导入
import { AgentProvider } from './contexts/AgentContext';          // 智能体状态管理
import { ConversationProvider } from './contexts/ConversationContext';  // 对话状态管理
import { PromptTemplateProvider } from './contexts/PromptTemplateContext';  // 提示词模板状态管理
import { McpToolProvider } from './contexts/McpToolContext';      // MCP工具状态管理
// 页面组件导入
import MainLayout from './components/Layout/MainLayout';        // 主布局组件
import Dashboard from './pages/Dashboard';                      // 仪表板页面
import AgentList from './pages/Agent/AgentList';                // 智能体列表页面
import AgentCreate from './pages/Agent/AgentCreate';            // 智能体创建页面
import AgentDetail from './pages/Agent/AgentDetail';            // 智能体详情页面
import AgentEdit from './pages/Agent/AgentEdit';                // 智能体编辑页面
import ModelConfigList from './pages/ModelConfig/ModelConfigList';  // 模型配置页面
import PromptTemplateList from './pages/PromptTemplate/PromptTemplateList';  // 提示词模板页面
import McpToolList from './pages/McpTool/McpToolList';          // MCP工具页面
import McpServerList from './pages/McpServer/McpServerList';      // MCP服务器配置页面
import ConversationList from './pages/Conversation/ConversationList';  // 对话记录页面
import ConversationDetail from './pages/Conversation/ConversationDetail';  // 对话详情页面
import ConversationEdit from './pages/Conversation/ConversationEdit';      // 对话编辑页面
import UsageStatsList from './pages/UsageStats/UsageStatsList';  // 使用统计页面
import SystemMonitor from './pages/Monitor/SystemMonitor';        // 系统监控页面

// 应用全局样式
import './App.css';

// 解构Layout组件获取Content子组件
const { Content } = Layout;

/**
 * 应用主组件
 * 定义整个应用的路由结构和页面布局
 */
const App: React.FC = () => {
  return (
    <AgentProvider>
      <ConversationProvider>
        <PromptTemplateProvider>
          <McpToolProvider>
            <MainLayout>
              {/* 内容区域 - 统一的边距和背景色 */}
              <Content style={{ 
                margin: '16px',     // 外边距
                padding: '24px',    // 内边距
                background: '#fff'  // 白色背景
              }}>
                <Routes>
                  {/* 根路径重定向到仪表板 */}
                  <Route path="/" element={<Navigate to="/dashboard" replace />} />
                  
                  {/* 仪表板页面路由 */}
                  <Route path="/dashboard" element={<Dashboard />} />
                  
                  {/* 智能体管理相关路由 */}
                  <Route path="/agents" element={<AgentList />} />          {/* 智能体列表 */}
                  <Route path="/agents/create" element={<AgentCreate />} />   {/* 创建智能体 */}
                  <Route path="/agents/:id" element={<AgentDetail />} />       {/* 智能体详情 */}
                  <Route path="/agents/:id/edit" element={<AgentEdit />} />     {/* 编辑智能体 */}
                  
                  {/* 系统配置相关路由 */}
                  <Route path="/model-configs" element={<ModelConfigList />} />    {/* 模型配置管理 */}
                  <Route path="/prompt-templates" element={<PromptTemplateList />} />  {/* 提示词模板管理 */}
                  <Route path="/mcp-tools" element={<McpToolList />} />        {/* MCP工具管理 */}
                  <Route path="/mcp-servers" element={<McpServerList />} />     {/* MCP服务器配置管理 */}
                  
                  {/* 监控和统计相关路由 */}
                  <Route path="/conversations" element={<ConversationList />} />  {/* 对话记录监控 */}
                  <Route path="/conversations/:id" element={<ConversationDetail />} />  {/* 对话详情 */}
                  <Route path="/conversations/:id/edit" element={<ConversationEdit />} />    {/* 编辑对话 */}
                  <Route path="/usage-stats" element={<UsageStatsList />} />      {/* 使用统计分析 */}
                  <Route path="/monitor" element={<SystemMonitor />} />         {/* 系统监控 */}
                </Routes>
              </Content>
            </MainLayout>
          </McpToolProvider>
        </PromptTemplateProvider>
      </ConversationProvider>
    </AgentProvider>
  );
};

export default App;